<template>
    <div>
        摇一摇
    </div>
</template>
<style>

</style>
<script>
    export default{
        data(){
            return{

            }
        },
        components:{

        },
        computed:{

        },
        methods:{
            deviceMotionHandler(eventData) {
                let SHAKE_THRESHOLD = 4000;
                let last_update = 0;
                let x, y, z, last_x = 0, last_y = 0, last_z = 0;
                //获取加速度信息
                //通过监听上一步获取到的x, y, z 值在一定时间范围内的变化率，进行设备是否有进行晃动的判断。
                //而为了防止正常移动的误判，需要给该变化率设置一个合适的临界值。
                let acceleration =eventData.accelerationIncludingGravity;
                let curTime = new Date().getTime();
                if ((curTime-last_update)> 10) {
                    let diffTime = curTime -last_update;
                    last_update = curTime;
                    x = acceleration.x;
                    y = acceleration.y;
                    z = acceleration.z;
                    let speed = Math.abs(x +y + z - last_x - last_y - last_z) / diffTime * 10000;
                    if (speed > SHAKE_THRESHOLD) {
                        console.log('do something, 业务暂时未知')
                    }
                    last_x = x;
                    last_y = y;
                    last_z = z;
                }
            }
        },
        created(){

        },
        mounted(){
            //运动事件监听
            if (window.DeviceMotionEvent) {
                window.addEventListener('devicemotion',this.deviceMotionHandler,false);
            }else{
                alert('手机暂不支持摇一摇功能')
            }
        }
    }
</script>
